<!DOCTYPE html>
<html class="client-nojs vector-feature-night-mode-disabled vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-sticky-header-enabled" lang="en" dir="ltr"><head>
<meta charset="UTF-8">
<title>Windows Script File</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="canonical" href="https://en.wikipedia.org/wiki/Windows_Script_File"> <link href="./mw/ext.pygments.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/user.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link rel="stylesheet" type="text/css" href="./mw/site.styles.css">
<link rel="stylesheet" type="text/css" href="./mw/noscript.css">
<link rel="stylesheet" type="text/css" href="./footer.css">
<link rel="stylesheet" type="text/css" href="./vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Windows_Script_File rootpage-Windows_Script_File skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading">
<span id="openzim-page-title" class="mw-page-title-main"><span class="mw-page-title-main">Windows Script File</span></span>
</h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="en" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="en" dir="ltr"><style data-mw-deduplicate="TemplateStyles:r1295905060">
/* start https://en.wikipedia.org/ */
.mw-parser-output .infobox-subbox{padding:0;border:none;margin:-3px;width:auto;min-width:100%;font-size:100%;clear:none;float:none;background-color:transparent}.mw-parser-output .infobox-3cols-child{margin:auto}.mw-parser-output .infobox .navbar{font-size:100%}@media screen{html.skin-theme-clientpref-night .mw-parser-output .infobox-full-data:not(.notheme)>div:not(.notheme)[style]{background:#1f1f23!important;color:#f8f9fa}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .infobox-full-data:not(.notheme)>div:not(.notheme)[style]{background:#1f1f23!important;color:#f8f9fa}}@media(min-width:640px){body.skin--responsive .mw-parser-output .infobox-table{display:table!important}body.skin--responsive .mw-parser-output .infobox-table>caption{display:table-caption!important}body.skin--responsive .mw-parser-output .infobox-table>tbody{display:table-row-group}body.skin--responsive .mw-parser-output .infobox-table th,body.skin--responsive .mw-parser-output .infobox-table td{padding-left:inherit;padding-right:inherit}}
/* end https://en.wikipedia.org/ */
</style><table class="infobox"><tbody><tr><th colspan="2" class="infobox-above" style="padding-bottom: 0.15em;">Windows Script File</th></tr><tr><th scope="row" class="infobox-label" style="line-height: 1.2; padding-right: 0.65em;"><a href="Filename_extension" title="Filename extension">Filename extension</a></th><td class="infobox-data" style="line-height: 1.35;"><style data-mw-deduplicate="TemplateStyles:r886049734">
/* start https://en.wikipedia.org/ */
.mw-parser-output .monospaced{font-family:monospace,monospace}
/* end https://en.wikipedia.org/ */
</style><div class="monospaced">
<code>.wsf</code></div></td></tr><tr><th scope="row" class="infobox-label" style="line-height: 1.2; padding-right: 0.65em;"><a href="Media_type" title="Media type">Internet media type</a></th><td class="infobox-data" style="line-height: 1.35;">text/xml</td></tr><tr><th scope="row" class="infobox-label" style="line-height: 1.2; padding-right: 0.65em;">Developed by</th><td class="infobox-data" style="line-height: 1.35;"><a href="Microsoft" title="Microsoft">Microsoft</a></td></tr><tr><th scope="row" class="infobox-label" style="line-height: 1.2; padding-right: 0.65em;">Type of format</th><td class="infobox-data" style="line-height: 1.35;">Scripting</td></tr><tr><th scope="row" class="infobox-label" style="line-height: 1.2; padding-right: 0.65em;"><a href="Container_format" title="Container format">Container for</a></th><td class="infobox-data" style="line-height: 1.35;">Scripts</td></tr></tbody></table>
<p>A <b>Windows Script File</b> (<b>WSF</b>) is a file type used by the <a href="Microsoft" title="Microsoft">Microsoft</a> <a href="Windows_Script_Host" title="Windows Script Host">Windows Script Host</a>. It allows mixing the <a href="Scripting_language" title="Scripting language">scripting languages</a> <a href="JScript" title="JScript">JScript</a> and <a href="VBScript" title="VBScript">VBScript</a> within a single file, or other scripting languages such as <a href="Perl" title="Perl">Perl</a>, <a href="Object_REXX" title="Object REXX">Object REXX</a>, <a href="Python_(programming_language)" title="Python (programming language)">Python</a>, or <a href="Kixtart" class="mw-redirect" title="Kixtart">Kixtart</a> if installed by the user. These types of scripts may also be used to link many other external scripts together using a <code>src</code> parameter on the <code class="nowrap" style=""><script></code> tag in a manner similar to <a href="HTML" title="HTML">HTML</a>. Windows Script Files have the extension <code>".WSF"</code>. A WSF makes reference to each script module in a very basic <a href="XML" title="XML">XML</a> hierarchy as shown below, adhering to those standards outside the <code class="nowrap" style=""><script></code> tags. Literal use of "<code class="nowrap" style=""></script></code>" or "<code class="nowrap" style=""><script></code>" inside your <code class="nowrap" style=""><script></code> tags and similar challenges can be handled by the use of <a href="CDATA" title="CDATA">CDATA</a>, as shown within the examples.
</p>
<meta property="mw:PageProp/toc">
<div class="mw-heading mw-heading2"><h2 id="Error_isolation">Error isolation</h2></div>
<p>A WSF may be useful for isolating errors. Its modular nature prevents one script reference from interfering with another. Here is a WSF example with one module that produces an error and one that does not:
</p>
<div class="mw-highlight mw-highlight-lang-aspx-vb mw-content-ltr" dir="ltr"><pre><span class="cp"><?xml version="1.0" ?></span>
<span class="w"> </span><span class="nt"><job</span><span class="w"> </span><span class="na">id=</span><span class="s">"Partially works"</span><span class="nt">></span>
<span class="w"> </span><span class="cm"><!-- This will not work --></span>
<span class="w"> </span><span class="nt"><script</span><span class="w"> </span><span class="na">language=</span><span class="s">"VBScript"</span><span class="nt">></span>
<span class="c">' <![CDATA[</span>
<span class="w"> </span><span class="n">WScript</span><span class="p">.</span><span class="n">echo</span><span class="w"> </span><span class="mi">4</span><span class="o">/</span><span class="mi">0</span><span class="w"> </span><span class="c">' Oh, boy! You cannot divide by zero...</span>
<span class="c">' ]]></span>
<span class="w"> </span><span class="nt"></script></span>
<span class="w"> </span><span class="cm"><!-- This will work... definitely... --></span>
<span class="w"> </span><span class="nt"><script</span><span class="w"> </span><span class="na">language=</span><span class="s">"VBScript"</span><span class="nt">></span>
<span class="c">' <![CDATA[</span>
<span class="w"> </span><span class="n">WScript</span><span class="p">.</span><span class="n">echo</span><span class="w"> </span><span class="s">"Hello, Scripters!"</span><span class="w"> </span><span class="o">&</span><span class="w"> </span><span class="n">vbNewline</span><span class="w"> </span><span class="o">&</span><span class="w"> </span>_
<span class="w"> </span><span class="s">"Fantastic! It worked!"</span>
<span class="c">' ]]></span>
<span class="w"> </span><span class="nt"></script></span>
<span class="w"> </span><span class="nt"></job></span>
</pre></div>
<p>The first script module will produce a "divide by zero" error. Typically this would cause the script to end in the <a href="Windows_Script_Host" title="Windows Script Host">Windows Script Host</a> but this modular method allows the script to continue and execute the second script module.
</p>
<div class="mw-heading mw-heading2"><h2 id="Mixed_language_support">Mixed language support</h2></div>
<p>A Windows Script File supports multiple languages, as described on the <a href="Windows_Script_Host" title="Windows Script Host">Windows Script Host</a> reference. One of the features of this file format is that you may use more than one at once. This means you can have one scripting language use code from another scripting language. The most memorable example for long-time <a href="VBScript" title="VBScript">VBScript</a> users is the use of Microsoft <a href="JScript" title="JScript">JScript</a> to service a sort request for <a href="VBScript" title="VBScript">VBScript</a> since it does not have a built-in sort function for an array of values. <a href="VBScript" title="VBScript">VBScript</a> users may write their own sort method or borrow one from an existing object like an ADO (<a href="ActiveX_Data_Objects" title="ActiveX Data Objects">ActiveX Data Objects</a>) <a href="Recordset" title="Recordset">Recordset</a> or a .NET (<a href=".NET_Framework" title=".NET Framework">.NET Framework</a>) <a href="ArrayList" class="mw-redirect" title="ArrayList">ArrayList</a>, but the fastest way to sort an array is to use the method built into <a href="JScript" title="JScript">JScript</a>. Here is a basic example of how that works:
</p>
<div class="mw-highlight mw-highlight-lang-aspx-vb mw-content-ltr" dir="ltr"><pre><span class="cp"><?xml version="1.0" ?></span>
<span class="cm"><!-- Mixing JScript and VBScript --></span>
<span class="w"> </span><span class="nt"><job</span><span class="w"> </span><span class="na">id=</span><span class="s">"SORT-VBScriptWithJScript"</span><span class="nt">></span>
<span class="w"> </span><span class="nt"><script</span><span class="w"> </span><span class="na">language=</span><span class="s">"JScript"</span><span class="nt">></span>
<span class="w"> </span><span class="k">function</span><span class="w"> </span><span class="nf">SortVBArray</span><span class="p">(</span><span class="n">arrVBArray</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="k">return</span><span class="w"> </span><span class="n">arrVBArray</span><span class="p">.</span><span class="n">toArray</span><span class="p">().</span><span class="n">sort</span><span class="p">()</span><span class="err">;</span><span class="p">}</span>
<span class="w"> </span><span class="nt"></script></span>
<span class="w"> </span><span class="nt"><script</span><span class="w"> </span><span class="na">language=</span><span class="s">"VBScript"</span><span class="nt">></span>
<span class="c">' <![CDATA[</span>
<span class="w"> </span><span class="c">'** Fastest sort: call the Jscript sort from VBScript</span>
<span class="w"> </span><span class="n">myData</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">"a,b,c,1,2,3,X,Y,Z,p,d,q"</span>
<span class="w"> </span><span class="n">wscript</span><span class="p">.</span><span class="n">echo</span><span class="w"> </span><span class="s">"Original List of values: "</span><span class="w"> </span><span class="o">&</span><span class="w"> </span><span class="n">vbTab</span><span class="w"> </span><span class="o">&</span><span class="w"> </span><span class="n">myData</span>
<span class="w"> </span><span class="n">starttime</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">timer</span><span class="p">()</span>
<span class="w"> </span><span class="n">sortedArray</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">SortVBArray</span><span class="p">(</span><span class="n">split</span><span class="p">(</span><span class="n">myData</span><span class="p">,</span><span class="s">","</span><span class="p">))</span>
<span class="w"> </span><span class="n">endtime</span><span class="o">=</span><span class="n">timer</span><span class="p">()</span>
<span class="w"> </span><span class="n">jscriptTime</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">round</span><span class="p">(</span><span class="n">endtime</span><span class="o">-</span><span class="n">starttime</span><span class="p">,</span><span class="mi">2</span><span class="p">)</span>
<span class="w"> </span><span class="n">wscript</span><span class="p">.</span><span class="n">echo</span><span class="w"> </span><span class="s">"JScript sorted in "</span><span class="w"> </span><span class="o">&</span><span class="w"> </span><span class="n">jscriptTime</span><span class="w"> </span><span class="o">&</span><span class="w"> </span><span class="s">" seconds: "</span><span class="w"> </span><span class="o">&</span><span class="w"> </span><span class="n">vbTab</span><span class="w"> </span><span class="o">&</span><span class="w"> </span><span class="n">sortedArray</span>
<span class="c">' ]]></span>
<span class="w"> </span><span class="nt"></script></span>
<span class="w"> </span><span class="nt"></job></span>
</pre></div>
<p>The output looks like this, sorted by <a href="ASCII" title="ASCII">ASCII</a> code sequence:
</p>
<div class="mw-highlight mw-highlight-lang-output mw-content-ltr" dir="ltr"><pre><span class="go">Original List of values: a,b,c,1,2,3,X,Y,Z,p,d,q</span>
<span class="go">JScript sorted in 0 seconds: 1,2,3,X,Y,Z,a,b,c,d,p,q</span>
</pre></div>
<div class="mw-heading mw-heading2"><h2 id="Exposing_constants">Exposing constants</h2></div>
<p>Another very useful feature of a WSF is that the XML wrapper can be bound to an object reference or control so you can use that object's constants instead of having to declare them. In regular <a href="VBScript" title="VBScript">VBScript</a> and <a href="JScript" title="JScript">JScript</a> files, you would be forced to declare a constant's value (outside those that are internal to the <a href="Windows_Script_Host" title="Windows Script Host">Windows Script Host</a>) in order to use the constant. An example of this is shown below:
</p>
<div class="mw-highlight mw-highlight-lang-vbscript mw-content-ltr" dir="ltr"><pre><span class="kd">const</span><span class="w"> </span><span class="no">adLockBatchOptimistic</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">4</span>
<span class="nb">MsgBox</span><span class="w"> </span><span class="s2">"The value of ""adLockBatchOptimistic"" is "</span><span class="w"> </span><span class="o">&</span><span class="w"> </span><span class="n">_</span>
<span class="w"> </span><span class="n">adLockBatchOptimistic</span><span class="w"> </span><span class="o">&</span><span class="w"> </span><span class="s2">"."</span><span class="p">,</span><span class="w"> </span><span class="no">vbInformation</span><span class="p">,</span><span class="s2">"adLockBatchOptimistic"</span>
</pre></div>
<p>If your object documentation only refers to the constant's name and not the constant's value, you would have no way of knowing the value without the help of an <a href="Integrated_development_environment" title="Integrated development environment">Integrated development environment</a> to tell you what they equate to. By using the WSF reference declaration, you can use the constants without declaring their values. The example below enumerates the values of several common constants in the ADO (<a href="ActiveX_Data_Objects" title="ActiveX Data Objects">ActiveX Data Objects</a>) <a href="Recordset" title="Recordset">Recordset</a>.
</p>
<div class="mw-highlight mw-highlight-lang-aspx-vb mw-content-ltr" dir="ltr"><pre><span class="cp"><?xml version="1.0" ?></span>
<span class="cm"><!-- WSF Example with Object Reference</span>
<span class="cm">Notes for this very formal example:</span>
<span class="cm"> CDATA is used to help the XML parser ignore </span>
<span class="cm"> special characters in the content of the script. </span>
<span class="cm"> The CDATA open and close must be masked </span>
<span class="cm"> from VBScript by making them comments.</span>
<span class="cm">--></span>
<span class="nt"><package></span>
<span class="w"> </span><span class="nt"><job</span><span class="w"> </span><span class="na">id=</span><span class="s">"EnumerateConstantsADO"</span><span class="nt">></span>
<span class="w"> </span><span class="nt"><reference</span><span class="w"> </span><span class="na">object=</span><span class="s">"ADODB.Recordset"</span><span class="w"> </span><span class="nt">/></span>
<span class="w"> </span><span class="nt"><script</span><span class="w"> </span><span class="na">language=</span><span class="s">"VBScript"</span><span class="nt">></span>
<span class="c">' <![CDATA[</span>
<span class="w"> </span><span class="k">dim</span><span class="w"> </span><span class="n">title</span><span class="p">,</span><span class="w"> </span><span class="n">str</span><span class="p">,</span><span class="w"> </span><span class="n">i</span>
<span class="w"> </span><span class="n">ctecArray</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">Array</span><span class="p">(</span><span class="s">"adOpenUnspecified"</span><span class="p">,</span><span class="s">"adOpenForwardOnly"</span><span class="p">,</span><span class="w"> </span>_
<span class="w"> </span><span class="s">"adOpenKeyset"</span><span class="p">,</span><span class="s">"adOpenDynamic"</span><span class="p">,</span><span class="s">"adOpenStatic"</span><span class="p">)</span>
<span class="w"> </span><span class="n">title</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">"ADO Recordset Values for Constants"</span>
<span class="w"> </span><span class="n">str</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">title</span><span class="w"> </span><span class="o">&</span><span class="w"> </span><span class="n">vbNewLine</span><span class="w"> </span><span class="o">&</span><span class="w"> </span><span class="n">vbNewLine</span>
<span class="w"> </span><span class="n">str</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">str</span><span class="w"> </span><span class="o">&</span><span class="w"> </span><span class="s">"*CursorTypeEnum Constants*"</span><span class="w"> </span><span class="o">&</span><span class="w"> </span><span class="n">vbNewLine</span>
<span class="w"> </span><span class="k">For</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="k">to</span><span class="w"> </span><span class="n">ubound</span><span class="p">(</span><span class="n">ctecArray</span><span class="p">)</span>
<span class="w"> </span><span class="n">str</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">str</span><span class="w"> </span><span class="o">&</span><span class="w"> </span><span class="n">Eval</span><span class="p">(</span><span class="n">ctecArray</span><span class="p">(</span><span class="n">i</span><span class="p">))</span><span class="w"> </span><span class="o">&</span><span class="w"> </span><span class="n">vbTab</span><span class="w"> </span><span class="o">&</span><span class="w"> </span><span class="n">ctecArray</span><span class="p">(</span><span class="n">i</span><span class="p">)</span><span class="w"> </span><span class="o">&</span><span class="w"> </span><span class="n">vbNewLine</span>
<span class="w"> </span><span class="k">Next</span>
<span class="w"> </span><span class="n">str</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">str</span><span class="w"> </span><span class="o">&</span><span class="w"> </span><span class="n">vbNewLine</span>
<span class="w"> </span><span class="n">str</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">str</span><span class="w"> </span><span class="o">&</span><span class="w"> </span><span class="s">"*LockTypeEnum Constants*"</span><span class="w"> </span><span class="o">&</span><span class="w"> </span><span class="n">vbNewLine</span>
<span class="w"> </span><span class="n">ltecArray</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">Array</span><span class="p">(</span><span class="s">"adLockUnspecified"</span><span class="p">,</span><span class="s">"adLockReadOnly"</span><span class="p">,</span><span class="w"> </span>_
<span class="w"> </span><span class="s">"adLockPessimistic"</span><span class="p">,</span><span class="s">"adLockOptimistic"</span><span class="p">,</span><span class="w"> </span>_
<span class="w"> </span><span class="s">"adLockBatchOptimistic"</span><span class="p">)</span>
<span class="w"> </span><span class="k">For</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="k">to</span><span class="w"> </span><span class="n">ubound</span><span class="p">(</span><span class="n">ltecArray</span><span class="p">)</span>
<span class="w"> </span><span class="n">str</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">str</span><span class="w"> </span><span class="o">&</span><span class="w"> </span><span class="n">Eval</span><span class="p">(</span><span class="n">ltecArray</span><span class="p">(</span><span class="n">i</span><span class="p">))</span><span class="w"> </span><span class="o">&</span><span class="w"> </span><span class="n">vbTab</span><span class="w"> </span><span class="o">&</span><span class="w"> </span><span class="n">ltecArray</span><span class="p">(</span><span class="n">i</span><span class="p">)</span><span class="w"> </span><span class="o">&</span><span class="w"> </span><span class="n">vbNewLine</span>
<span class="w"> </span><span class="k">Next</span>
<span class="w"> </span><span class="n">MsgBox</span><span class="w"> </span><span class="n">str</span><span class="p">,</span><span class="w"> </span><span class="n">vbInformation</span><span class="p">,</span><span class="w"> </span><span class="n">Title</span>
<span class="c">' ]]></span>
<span class="w"> </span><span class="nt"></script></span>
<span class="w"> </span><span class="nt"></job></span>
<span class="nt"></package></span>
</pre></div>
<p>Running the above script from a file with a <code>".WSF"</code> extension, such as one named <code>"EnumerateConstantsADO.wsf"</code>, will produce the result shown below:
</p>
<div class="mw-highlight mw-highlight-lang-output mw-content-ltr" dir="ltr"><pre><span class="go">ADO Recordset Values for Constants</span>
<span class="go">*CursorTypeEnum Constants*</span>
<span class="go">-1 adOpenUnspecified</span>
<span class="go">0 adOpenForwardOnly</span>
<span class="go">1 adOpenKeyset</span>
<span class="go">2 adOpenDynamic</span>
<span class="go">3 adOpenStatic</span>
<span class="go">*LockTypeEnum Constants*</span>
<span class="go">-1 adLockUnspecified</span>
<span class="go">1 adLockReadOnly</span>
<span class="go">2 adLockPessimistic</span>
<span class="go">3 adLockOptimistic</span>
<span class="go">4 adLockBatchOptimistic</span>
</pre></div>
<p>In addition, using the object reference to expose the constants makes writing the script more like writing in a standard programming language. In fact, the contents of the sample script, written in VBScript, will actually compile into a <a href="Visual_Basic" title="Visual Basic">Visual Basic</a> program and run the same way as long as that program uses the same reference to ADODB.
</p>
<div class="mw-heading mw-heading2"><h2 id="See_also">See also</h2></div>
<ul><li><a href="Active_Scripting" title="Active Scripting">Active Scripting</a></li>
<li><a href="Shell_script" title="Shell script">Shell script</a></li>
<li><a href="HTML_Application" title="HTML Application">HTML Application</a></li>
<li><a href="PowerShell" title="PowerShell">PowerShell</a></li></ul>
<div class="mw-heading mw-heading2"><h2 id="External_links">External links</h2></div>
<ul><li><a rel="nofollow" class="external text" href="https://web.archive.org/web/20160330040830/https://msdn.microsoft.com/en-us/library/15x4407c.aspx">Using Windows Script Files</a> - From <a href="The_Wayback_Machine" class="mw-redirect" title="The Wayback Machine">The WayBack Machine's</a> archive of a page from <a href="Microsoft" title="Microsoft">Microsoft's</a> website</li>
<li><a rel="nofollow" class="external text" href="https://web.archive.org/web/20090315062650/http://www.microsoft.com/technet/scriptcenter/scripts/language.mspx">Scripting Languages Available in the Script Center</a> - From <a href="The_Wayback_Machine" class="mw-redirect" title="The Wayback Machine">The WayBack Machine's</a> archive of a page from <a href="Microsoft" title="Microsoft">Microsoft's</a> website</li></ul></div><!--htdig_noindex--><div><div class="zim-footer">
This article is issued from <a class="external text" title="Last edited on 2023-10-28" href="https://en.wikipedia.org/wiki/?title=Windows_Script_File&oldid=1182334919">Wikipedia</a>. The text is available under <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.en">Creative Commons Attribution-Share Alike 4.0</a> unless otherwise noted. Additional terms may apply for the media files.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>
</body></html>